/* RT-Thread config file */
#ifndef __RTTHREAD_CFG_H__
#define __RTTHREAD_CFG_H__

#include "app_config.h"

#define RT_NAME_MAX     8
#define RT_THREAD_PRIORITY_MAX  8
#define RT_TICK_PER_SECOND  100
#define RT_ALIGN_SIZE   4

#define RT_USING_COMPONENTS_INIT
#define RT_USING_USER_MAIN      // 一般必须开启，否则需要自己调用一系列初始化
#define RT_MAIN_THREAD_STACK_SIZE     512

// #define RT_DEBUG
// #define RT_DEBUG_INIT 0
// #define RT_USING_OVERFLOW_CHECK

//#define RT_USING_HOOK
//#define RT_USING_IDLE_HOOK

// #define RT_USING_TIMER_SOFT
// #define RT_TIMER_THREAD_PRIO            4
// #define RT_TIMER_THREAD_STACK_SIZE      512
// #define RT_TIMER_TICK_PER_SECOND        10

#define RT_USING_SEMAPHORE
#define RT_USING_MUTEX
//#define RT_USING_EVENT
//#define RT_USING_MAILBOX
//#define RT_USING_MESSAGEQUEUE

// #define RT_USING_MEMPOOL
#define RT_USING_HEAP
#define RT_USING_SMALL_MEM

#define RT_USING_TINY_SIZE  // 是否使用 小体积的算法，牵扯到 rt_memset、rt_memcpy 所产生的体积

#if APP_DRIVE_SELECT == 1
/* SECTION: Device System */
/* Using Device System */
#define RT_USING_DEVICE
// <bool name="RT_USING_DEVICE_IPC" description="Using device communication" default="true" />
#define RT_USING_DEVICE_IPC
// <bool name="RT_USING_SERIAL" description="Using Serial" default="true" />
#define RT_USING_SERIAL
#define RT_USING_PIN
#endif

#define RT_USING_CONSOLE
#define RT_CONSOLEBUF_SIZE          128


#if APP_SELECT_EXAMPLE != 0
/* SECTION: finsh, a C-Express shell */
#define RT_USING_FINSH
#define FINSH_USING_MSH
#define FINSH_USING_MSH_ONLY
/* configure finsh parameters */
#define FINSH_THREAD_PRIORITY       (RT_THREAD_PRIORITY_MAX - 2)
#define FINSH_THREAD_STACK_SIZE     512
/* Using symbol table */
#define FINSH_USING_SYMTAB
#define FINSH_USING_DESCRIPTION
// #define FINSH_USING_HISTORY
// #define FINSH_HISTORY_LINES         1

#endif  //#if 1



/* SECTION: libc management */
#define RT_USING_LIBC

/* SECTION: device filesystem */
/* #define RT_USING_DFS */
//#define RT_USING_DFS_ELMFAT
// #define RT_DFS_ELM_WORD_ACCESS
// /* Reentrancy (thread safe) of the FatFs module.  */
// #define RT_DFS_ELM_REENTRANT
// /* Number of volumes (logical drives) to be used. */
// #define RT_DFS_ELM_DRIVES           2
// /* #define RT_DFS_ELM_USE_LFN       1 */
// #define RT_DFS_ELM_MAX_LFN          255
// /* Maximum sector size to be handled. */
// #define RT_DFS_ELM_MAX_SECTOR_SIZE  512

// #define RT_USING_DFS_ROMFS

// /* the max number of mounted filesystem */
// #define DFS_FILESYSTEMS_MAX         2
// /* the max number of opened files   */
// #define DFS_FD_MAX                  4

#endif
